/**
 * @copyright (c) YX Company.
 */
package com.ry.core.base.service;

import java.util.List;
import java.util.Map;

import com.ry.core.base.common.Page;
import com.ry.core.base.model.SimpleModel;
import com.ry.core.exception.BaseException;
import com.ry.core.exception.BusinessException;

/**
 * 业务服务类基类，所有的业务服务类都应该继承此类
 * 
 * @author chengl
 * @Date 2011-8-16
 * @version 1.0
 */
public interface IBaseService {

	/**
	 * 获取对象分页集合
	 * 
	 * @param page
	 * @param m
	 * @return
	 */
	public Page<?> getPage(Page<?> page, Map<String, Object> m)
			throws BaseException;

	/**
	 * 获取对象集合
	 * 
	 * @param m
	 * @return
	 */
	public List<?> findListByMap(Map<String, Object> m) throws BaseException;

	/**
	 * 获取对象集合
	 * 
	 * @param m
	 * @return
	 */
	public List<?> getList() throws BaseException;

	/**
	 * 新增业务对象
	 * 
	 * @param o
	 * @return
	 */
	public void add(SimpleModel object) throws BaseException;

	/**
	 * 编辑业务对象
	 * 
	 * @param o
	 * @return
	 * @throws BusinessException
	 */
	public SimpleModel edit(SimpleModel object) throws BaseException;

	/**
	 * 根据id获取业务对象
	 * 
	 * @param id
	 * @return
	 */
	public SimpleModel get(String id) throws BaseException;

	/**
	 * 根据id获取业务对象
	 * 
	 * @param id
	 * @return
	 */
	public SimpleModel load(String id) throws BaseException;

	/**
	 * 根据id删除单个业务对象，返回删除的记录数
	 * 
	 * @param id
	 */
	public int remove(String id) throws BaseException;

	/**
	 * 根据id数组删除多个业务对象，返回删除的记录数
	 * 
	 * @param idArr
	 */
	public int removeByIdArr(String[] idArr) throws BaseException;

	/**
	 * 根据多个id删除多个业务对象，id以,隔开，返回删除的记录数
	 * 
	 * @param ids
	 */
	public int removeByIds(String ids) throws BaseException;

	/**
	 * 获取对象分页集合
	 * 
	 * @param page
	 * @param m
	 * @return
	 */
	public Page<?> getPageSimple(Page<?> page, Map<String, Object> m)
			throws BaseException;

	/**
	 * 获取对象集合
	 * 
	 * @param m
	 * @return
	 */
	public List<?> findListByMapSimple(Map<String, Object> m)
			throws BaseException;

	/**
	 * 获取对象集合
	 * 
	 * @param m
	 * @return
	 */
	public List<?> getListSimple() throws BaseException;

	/**
	 * 新增业务对象
	 * 
	 * @param o
	 * @return
	 */
	public void addSimple(SimpleModel object) throws BaseException;

	/**
	 * 编辑业务对象
	 * 
	 * @param o
	 * @return
	 * @throws BusinessException
	 */
	public SimpleModel editSimple(SimpleModel object) throws BaseException;

	/**
	 * 根据id获取业务对象
	 * 
	 * @param id
	 * @return
	 */
	public SimpleModel getSimple(String id) throws BaseException;

	/**
	 * 根据id获取业务对象
	 * 
	 * @param id
	 * @return
	 */
	public SimpleModel loadSimple(String id) throws BaseException;

	/**
	 * 根据id删除单个业务对象，返回删除的记录数
	 * 
	 * @param id
	 */
	public int removeSimple(String id) throws BaseException;

	/**
	 * 根据id数组删除多个业务对象，返回删除的记录数
	 * 
	 * @param idArr
	 */
	public int removeByIdArrSimple(String[] idArr) throws BaseException;

	/**
	 * 根据多个id删除多个业务对象，id以,隔开，返回删除的记录数
	 * 
	 * @param ids
	 */
	public int removeByIdsSimple(String ids) throws BaseException;

	SimpleModel editObj(SimpleModel object) throws BaseException;

}
